//
//  MinDepth.swift
//  LeetCodeSummary
//
//  Created by 彭西西 on 2020/8/21.
//  Copyright © 2020 WangYonghe. All rights reserved.
//  111. 二叉树的最小深度

import UIKit

/*
 111. 二叉树的最小深度

 给定一个二叉树，找出其最小深度。

 最小深度是从根节点到最近叶子节点的最短路径上的节点数量。

 说明: 叶子节点是指没有子节点的节点。

 示例:

 给定二叉树 [3,9,20,null,null,15,7],

     3
    / \
   9  20
     /  \
    15   7
 返回它的最小深度  2.
 */

class MinDepth: NSObject {
    func minDepth(_ root: TreeNode?) -> Int {
        guard root != nil else {
            return 0
        }
        if root?.left == nil || root?.right == nil{
            return max(minDepth(root!.left),minDepth(root!.right)) + 1
        }
        return min(minDepth(root!.left),minDepth(root!.right)) + 1
    }
}
